package com.welink.cmp.convertor;

/**
 * @author yanwei li create  2024-05-30 22:33
 */
import com.welink.cmp.dao.metadata.dataobject.RegionDO;
import com.welink.cmp.dto.metadata.region.RegionCO;
import org.springframework.beans.BeanUtils;

import java.util.List;
import java.util.stream.Collectors;

public class RegionConvertor {

    /**
     * 将 RegionDO 转换为 RegionCO
     *
     * @param regionDO 数据对象
     * @return 业务对象
     */
    public static RegionCO toCO(RegionDO regionDO) {
        if (regionDO == null) {
            return null;
        }
        RegionCO regionCO = new RegionCO();
        BeanUtils.copyProperties(regionDO, regionCO);
        return regionCO;
    }

    /**
     * 将 RegionCO 转换为 RegionDO
     *
     * @param regionCO 业务对象
     * @return 数据对象
     */
    public static RegionDO toDO(RegionCO regionCO) {
        if (regionCO == null) {
            return null;
        }
        RegionDO regionDO = new RegionDO();
        BeanUtils.copyProperties(regionCO, regionDO);
        return regionDO;
    }

    /**
     * 将 List<RegionDO> 转换为 List<RegionCO>
     *
     * @param regionDOList 数据对象列表
     * @return 业务对象列表
     */
    public static List<RegionCO> toCOList(List<RegionDO> regionDOList) {
        if (regionDOList == null) {
            return null;
        }
        return regionDOList.stream()
                .map(RegionConvertor::toCO)
                .collect(Collectors.toList());
    }

    /**
     * 将 List<RegionCO> 转换为 List<RegionDO>
     *
     * @param regionCOList 业务对象列表
     * @return 数据对象列表
     */
    public static List<RegionDO> toDOList(List<RegionCO> regionCOList) {
        if (regionCOList == null) {
            return null;
        }
        return regionCOList.stream()
                .map(RegionConvertor::toDO)
                .collect(Collectors.toList());
    }
}
